home *** CD-ROM | disk | FTP | other *** search
/ Risc World 3 / Risc World 3.iso / SOFTWARE / ISSUE2 / PD / MODCHECK / !ModCheck / File (.txt) < prev    next >
RISC OS BBC BASIC V Source  |  2002-04-09  |  3KB  |  133 lines

  1.  >SnigLib.File
  2.  This contains routines which deal with file and loading text into memory
  3.  blocks. You may use this code in your applications as long as you inform
  4.  me. owen.griffin@btinternet.com
  5.  PROCFile_Create
  6.  Creates a file of a set type (text)
  7.  -> Path and file type
  8. File_Create(Path$,Type$)
  9. ("Create "+Path$)
  10. ("Settype "+Path$+" "+Type$)
  11.  FNFile_ReadDate
  12.  Find the date of a file
  13.  -> Path
  14.  <- Date in file format
  15. File_ReadDate(Path$)
  16.  Block%,Buffer%,Term%
  17.  Block% 256
  18.  Buffer% 10
  19. Term%=0
  20. "OS_File",17,Path$ 
  21.  ,,Block%!4,!Block%
  22. "OS_ConvertDateAndTime",Block%,Buffer%,256,"%W3 %DY-%M3-%YR" 
  23.  ,Term%
  24. ?Term%=&D
  25. =$Buffer%
  26.  FNFile_Exists
  27.  Find the existance of file
  28.  -> Path
  29.  <- TRUE/FALSE
  30. File_File(Path$)
  31.  Exists%
  32.  "XOS_File",&05,Path$ 
  33.  Exists%
  34. =(Exists%=1)
  35.  FNFile_Size
  36.  Finds the size of the file
  37.  -> Path
  38.  <- Size
  39. File_Size(FilePath$)
  40.  Size%,Type%
  41.  "OS_File",&05,FilePath$ 
  42.  Type%,,,,Size%
  43.  Type%=0 
  44.  0, "File not found"
  45. =Size%
  46.  FNFile_FileType
  47.  Finds the file type or object of a path name
  48.  -> Path of a file; output type
  49.  <- Depending on Output%
  50.     1 = Text file type
  51.     2 = Object type
  52.     3 = Hex number text
  53. File_FileType(FilePath$,Output%)
  54.  Object%,FileTypeStr%
  55. Type$="":Type%=0:Object%=0
  56.  FileTypeStr% 9
  57. FileTypeStr%?8=13
  58. "OS_File",21,FilePath$ 
  59.  Object%,,,,,,Type%
  60.  Object%<>1 
  61.  ERROR 0,"Object type is not correct"
  62.  Output% 
  63. GC     
  64. "OS_FSControl",18,,&FFF 
  65.  ,,!FileTypeStr%,FileTypeStr%!4
  66.      =$(FileTypeStr%)
  67.      =Object%
  68.      =Type%
  69. =Object%
  70.  FNText_Load
  71.  -> Path of a text-like file, var for size
  72.  <- Memory block containing file
  73. Text_Load(Path$, 
  74.  Size%)
  75.  Data%,MaxSize%
  76. MaxSize%=(64*1024)
  77.  Data% MaxSize%-1
  78.  "OS_File",16,Path$,Data%,0 
  79.  ,,,,Size%
  80. =Data%
  81.  FNText_Blank
  82.  Creates a blank text block
  83.  <- Text block
  84. Text_Blank
  85.  Data%,MaxSize%
  86. MaxSize%=(64*1024)
  87.  Data% MaxSize%-1
  88. =Data%
  89.  FNText_NextLine
  90.  Reads the next line from a text block
  91.  -> Block containing text file and position of block
  92.  <- Next line of the file and position
  93. Text_NextLine(TextBlock%,
  94.  Position%,Size%)
  95.  Result$,Char%
  96. Result$=""
  97.  Char%<>13 
  98.  Char%<>10 
  99.  Position%<Size%
  100. o   Char%=TextBlock%?Position%
  101.  Char%<>13 
  102.  Char%<>10 
  103.  Result$+=
  104.  Char%
  105.   Position%+=1
  106. =Result$
  107.  PROCText_AddLine
  108.  Adds a line of text to the end of the file block
  109.  -> Block containing text, size and line
  110. Text_AddLine(TextBlock%,
  111.  Size%,Line$)
  112.  Len%,Pos%,C%
  113. Len%=
  114. (Line$)
  115. TextBlock%?(Size%)=10
  116.  Pos%=Size%+1 
  117.  Size%+Len%
  118. %  TextBlock%?Pos%=
  119. Line$,C%,1))
  120.   C%+=1
  121.  Pos%
  122. Size%+=Len%+1
  123.  TextBlock%?(Size%)=10
  124.  Size%+=1
  125.  PROCText_DisplayText
  126.  Displays the text in a text block
  127. Text_DisplayText(TextBlock%,Size%)
  128.  Pos%
  129. Pos%=0
  130. (TextBlock%?Pos%);
  131.   Pos%+=1
  132.  Pos%>=Size%
  133.